# -*- coding: utf-8 -*-

from sqlalchemy import Column, Integer, String, Float
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base


#   创建一个连接,创建一个声明类，映射类到表的关系
engine = create_engine('mysql+pymysql://root:root@localhost/movie?charset=utf8', echo=True)
Base = declarative_base()


class Movie(Base):

    __tablename__ = 'movies'

    id = Column('id', Integer, primary_key=True, autoincrement=True)
    average = Column('average', Float)
    stars = Column('stars', Integer)
    genres = Column('genres', String(20))
    title = Column('title', String(30))
    avatars = Column('avatars', String(50))
    original_title = Column('original_title', String(50))
    directors = Column('directors', String(20))
    year = Column('year', String(4))

    def __repr__(self):
        return "<average='{}',stars='{}',genres='{}',title='{}',avatars='{}',original_title='{}',directors='{}," \
               "year='{}'>".format(self.average, self.stars, self.genres, self.title, self.avatars, self.original_title,
                                   self.directors, self.year)

def main(items):

    #   创建会话
    DBSession = sessionmaker(bind=engine)
    #   实例化一个Session
    session = DBSession()
    try:
        for item in items:
            movie = Movie(average=item['average'], stars=item['stars'], genres=item['genres'], title=item['title'],
                          avatars=item['avatars'], original_title=item['original_title'], directors=item['directors'],
                          year=item['year'])
            session.add(movie)
            session.commit()
            print('cg')
    except Exception as e:
        print(e)



Base.metadata.create_all(engine)


# if __name__ == '__main__':
#
#     Base.metadata.create_all(engine)
#
#     l = [{'average': 9.6, 'stars': '50', 'genres': '犯罪,剧情', 'title': '肖申克的救赎', 'avatars': '蒂姆·罗宾斯,摩根·弗里曼,鲍勃·冈顿', 'original_title': 'The Shawshank Redemption', 'directors': '弗兰克·德拉邦特', 'year': '1994'}, {'average': 9.5, 'stars': '50', 'genres': '剧情,爱情,同性', 'title': '霸王别姬', 'avatars': '张国荣,张丰毅,巩俐', 'original_title': '霸王别姬', 'directors': '陈凯歌', 'year': '1993'}, {'average': 9.4, 'stars': '50', 'genres': '剧情,动作,犯罪', 'title': '这个杀手不太冷', 'avatars': '让·雷诺,娜塔莉·波特曼,加里·奥德曼', 'original_title': 'Léon', 'directors': '吕克·贝松', 'year': '1994'}, {'average': 9.4, 'stars': '50', 'genres': '剧情,爱情', 'title': '阿甘正传', 'avatars': '汤姆·汉克斯,罗宾·怀特,加里·西尼斯', 'original_title': 'Forrest Gump', 'directors': '罗伯特·泽米吉斯', 'year': '1994'}, {'average': 9.5, 'stars': '50', 'genres': '剧情,喜剧,爱情', 'title': '美丽人生', 'avatars': '罗伯托·贝尼尼,尼可莱塔·布拉斯基,乔治·坎塔里尼', 'original_title': 'La vita è bella', 'directors': '罗伯托·贝尼尼', 'year': '1997'}, {'average': 9.3, 'stars': '50', 'genres': '剧情,动画,奇幻', 'title': '千与千寻', 'avatars': '柊瑠美,入野自由,夏木真理', 'original_title': '千と千尋の神隠し', 'directors': '宫崎骏', 'year': '2001'}, {'average': 9.3, 'stars': '50', 'genres': '剧情,爱情,灾难', 'title': '泰坦尼克号', 'avatars': '莱昂纳多·迪卡普里奥,凯特·温丝莱特,比利·赞恩', 'original_title': 'Titanic', 'directors': '詹姆斯·卡梅隆', 'year': '1997'}, {'average': 9.4, 'stars': '50', 'genres': '剧情,历史,战争', 'title': '辛德勒的名单', 'avatars': '连姆·尼森,本·金斯利,拉尔夫·费因斯', 'original_title': "Schindler's List", 'directors': '史蒂文·斯皮尔伯格', 'year': '1993'}, {'average': 9.3, 'stars': '50', 'genres': '剧情,科幻,悬疑', 'title': '盗梦空间', 'avatars': '莱昂纳多·迪卡普里奥,约瑟夫·高登-莱维特,艾伦·佩吉', 'original_title': 'Inception', 'directors': '克里斯托弗·诺兰', 'year': '2010'}, {'average': 9.3, 'stars': '50', 'genres': '爱情,科幻,动画', 'title': '机器人总动员', 'avatars': '本·贝尔特,艾丽莎·奈特,杰夫·格尔林', 'original_title': 'WALL·E', 'directors': '安德鲁·斯坦顿', 'year': '2008'}, {'average': 9.2, 'stars': '45', 'genres': '剧情,音乐', 'title': '海上钢琴师', 'avatars': '蒂姆·罗斯,普路特·泰勒·文斯,比尔·努恩', 'original_title': "La leggenda del pianista sull'oceano", 'directors': '朱塞佩·托纳多雷', 'year': '1998'}, {'average': 9.2, 'stars': '45', 'genres': '剧情,喜剧,爱情', 'title': '三傻大闹宝莱坞', 'avatars': '阿米尔·汗,卡琳娜·卡普尔,马达范', 'original_title': '3 Idiots', 'directors': '拉吉库马尔·希拉尼', 'year': '2009'}, {'average': 9.2, 'stars': '50', 'genres': '剧情', 'title': '忠犬八公的故事', 'avatars': '理查·基尔,萨拉·罗默尔,琼·艾伦', 'original_title': "Hachi: A Dog's Tale", 'directors': '拉斯·霍尔斯道姆', 'year': '2009'}, {'average': 9.2, 'stars': '50', 'genres': '剧情,音乐', 'title': '放牛班的春天', 'avatars': '热拉尔·朱尼奥,让-巴蒂斯特·莫尼耶,弗朗索瓦·贝莱昂', 'original_title': 'Les choristes', 'directors': '克里斯托夫·巴拉蒂', 'year': '2004'}, {'average': 9.2, 'stars': '45', 'genres': '喜剧,爱情,奇幻', 'title': '大话西游之大圣娶亲', 'avatars': '周星驰,吴孟达,朱茵', 'original_title': '西遊記大結局之仙履奇緣', 'directors': '刘镇伟', 'year': '1995'}, {'average': 9.1, 'stars': '45', 'genres': '剧情,科幻', 'title': '楚门的世界', 'avatars': '金·凯瑞,劳拉·琳妮,艾德·哈里斯', 'original_title': 'The Truman Show', 'directors': '彼得·威尔', 'year': '1998'}, {'average': 9.1, 'stars': '45', 'genres': '儿童,动画,奇幻', 'title': '龙猫', 'avatars': '日高法子,坂本千夏,糸井重里', 'original_title': 'となりのトトロ', 'directors': '宫崎骏', 'year': '1988'}, {'average': 9.2, 'stars': '50', 'genres': '剧情,犯罪', 'title': '教父', 'avatars': '马龙·白兰度,阿尔·帕西诺,詹姆斯·肯恩', 'original_title': 'The Godfather', 'directors': '弗朗西斯·福特·科波拉', 'year': '1972'}, {'average': 9.2, 'stars': '50', 'genres': '剧情', 'title': '熔炉', 'avatars': '孔侑,郑有美,金志映', 'original_title': '도가니', 'directors': '黄东赫', 'year': '2011'}, {'average': 9.2, 'stars': '45', 'genres': '剧情,科幻,冒险', 'title': '星际穿越', 'avatars': '马修·麦康纳,安妮·海瑟薇,杰西卡·查斯坦', 'original_title': 'Interstellar', 'directors': '克里斯托弗·诺兰', 'year': '2014'}]
#
#     main(l)